
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MySQLConnection {

    private static MySQLConnection instance = null;
    private static Connection conn = null;
    // Hostname
    private static String dbHost = "localhost";
    // Port -- Standard: 3306
    private static String dbPort = "3306";
    // Datenbankname
    private static String database = "batchsystem";
    // Datenbankuser
    private static String dbUser = "root";
    // Datenbankpasswort
    private static String dbPassword = "1234";
    private static String URL = "jdbc:mysql://" + dbHost + ":" + dbHost + "/" + database;
    private static Statement befehl = null;

    private MySQLConnection() {
        try {

            // Datenbanktreiber für ODBC Schnittstellen laden.
            // Für verschiedene ODBC-Datenbanken muss dieser Treiber
            // nur einmal geladen werden.
            Class.forName("com.mysql.jdbc.Driver");

            // Verbindung zur ODBC-Datenbank 'sakila' herstellen.
            // Es wird die JDBC-ODBC-Brücke verwendet.
            conn = DriverManager.getConnection("jdbc:mysql://" + dbHost + ":"
                    + dbPort + "/" + database + "?" + "user=" + dbUser + "&"
                    + "password=" + dbPassword);
            System.out.println("Wurde erfolgreich mit " + database + " verbunden");

        } catch (ClassNotFoundException e) {
            System.out.println("Treiber nicht gefunden");
        } catch (SQLException e) {
            System.out.println("Connect nicht moeglich");
        }



    }

    public static MySQLConnection getInstance() {
        if (instance == null) {
            instance = new MySQLConnection();
        }
        return instance;
    }
    
    public void insertTimeInDB(String userid, String path, Date date){
        insertQuery("INSERT into time values (NULL, '"+formatDate("yyyy.MM.dd HH:mm:ss", date)+"', '"+path+"', '"+userid+"')");
    }

    public void insertQuery(String query) {
        try {
            befehl = conn.createStatement();
        } catch (Exception e) {
            System.out.println("Verbindung konnte nicht hergestellt werden");
        }

        try {

            befehl.execute(query);

        } catch (Exception e) {
            System.out.println(e.getMessage());

        }
    }
    
    public String formatDate(String format){
        Date now = new Date();
        String dateString = now.toString();
        SimpleDateFormat formator = new SimpleDateFormat(format);
        return formator.format(now);
    }
    public String formatDate(String format, Date date){
        String dateString = date.toString();
        SimpleDateFormat formator = new SimpleDateFormat(format);
        return formator.format(date);
    }

}